/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ohyessoftware.sigc.infra.negocio;

import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Diego
 * 01/06/2011
 */
@Entity
@Table(name = "endereco", schema = "sigc")
public class Endereco {

    private static final long serialVersionUID = 1L;
    
    //atributos
    /******************************************************************************/
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "cod_endereco")
    private Long codEndereco;

    @Column(name = "rua")
    private String rua;

    @Column(name = "logradouro")
    private String logradouro;

    @Column(name = "cep")
    private String cep;

    //relacoes
    /******************************************************************************/
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_bairro", insertable = true, updatable = true)
    public Bairro bairro;
    
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_cidade", insertable = true, updatable = true)
    public Cidade cidade;

    @OneToMany(mappedBy = "endereco", fetch = FetchType.LAZY)
    private List<Funcionario> funcionarios;

    @OneToMany(mappedBy = "endereco", fetch = FetchType.LAZY)
    private List<Fornecedor> fornecedores;

    @OneToMany(mappedBy = "endereco", fetch = FetchType.LAZY)
    private List<Cliente> clientes;

    //get e set
    /******************************************************************************/
    public Bairro getBairro() {
        return bairro;
    }

    public void setBairro(Bairro bairro) {
        this.bairro = bairro;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public List<Cliente> getCliente() {
        return clientes;
    }

    public void setCliente(List<Cliente> cliente) {
        this.clientes = cliente;
    }

    public Long getCodEndereco() {
        return codEndereco;
    }

    public void setCodEndereco(Long codEndereco) {
        this.codEndereco = codEndereco;
    }

    public List<Funcionario> getFuncionario() {
        return funcionarios;
    }

    public void setFuncionario(List<Funcionario> funcionario) {
        this.funcionarios = funcionario;
    }

    public List<Fornecedor> getFornecedor() {
        return fornecedores;
    }

    public void setFornecedor(List<Fornecedor> fornecedor) {
        this.fornecedores = fornecedor;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getRua() {
        return rua;
    }

    public void setRua(String rua) {
        this.rua = rua;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

}
